/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Interface;

import moteur.carte.editor.Graphe;
import moteur.partie.Joeur;
import moteur.partie.JoeurAlea;
import moteur.partie.Partie;
import moteur.partie.Partie.Etat.Phase;

/**
 *
 * @author Administrateur
 */
public class LogConsole implements ListenerPartie, ListenerJoeur {

    /**
     * 
     */
    public LogConsole() {
    }

    /**
     *
     * @param e
     */
    @Override
    public void update(EventPartie e) {
        if (e.phase != null) {

            if (e.phase == Phase.resolution) {
                System.out.println("\n \t -----FIN TOUR " +e.tourOUXscoreVainqueur+"-----");
            }else{
                System.out.println("\n" + "Phase : " + e.phase.name());
            }
        } else {
            if (e.joeur != null) {
                System.out.println(e.joeur.getNom() + " remporte la partie avec un score de: " + e.tourOUXscoreVainqueur);
            }
        }
        if (e.joeur != null) {
            System.out.println("A " + e.joeur.getNom() + " de jouer.");
        }
    }

    /**
     *
     * @param e
     */
    @Override
    public void update(EventJoeur e) {
        if (e.position != null) {
            System.out.println(e.himself.getNom() + " s'est déplacé à " + e.position.toString());//+" en passant par "+ e.route.toString());
        }
        if (e.pion != null) {
            if (e.route != null) {
                System.out.println(e.himself.getNom() + " a placé " + e.pion.toString() + " sur " + e.route.toString() );
            } else {
                System.out.println(e.himself.getNom() + " a choisi un pion " + e.pion.name());
            }
           
        }
        if(e.pion ==  null && e.position == null && e.route == null){
                System.out.println(e.himself.getNom() + " a passé.");
            }
    }

    /**
     *
     * @param arg
     */
    public static void main(String[] arg){

        LogConsole log = new LogConsole();
        Partie p = Partie.getInstance();

        Graphe g = Graphe.readGraphe("graphe2.xml");

        p.setG(g) ;
        p.addListener(log);

        Joeur j1 = new JoeurAlea("Alphonse");
        j1.addListener(log);
        Joeur j2 = new JoeurAlea("Bernard");
        j2.addListener(log);
        Joeur j3 = new JoeurAlea("Charles");
        j3.addListener(log);
        Joeur j4 = new JoeurAlea("Denis");
        j4.addListener(log);

        p.run();
        }
    }

